<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 7.0/HTML Export Filter">
<LINK REL="STYLESHEET" HREF="KDM_1.0_17_eventpkg.css" CHARSET="ISO-8859-1" TYPE="text/css">
<TITLE> 17	Event Package</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<DIV>
<H6 CLASS="Heading">
<A NAME="pgfId-998826"></A><A NAME="58728"></A>Event Package</H6>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1086553"></A>Overview</H3>
<P CLASS="Body">
<A NAME="pgfId-1098710"></A>The Event package defines a set of meta-model elements whose purpose is to represent high-level behavior of applications, in particular event-driven state transitions. Elements of the KDM Event package represent states, transitions and event. States can be concrete, for example, the ones which are explicitly supported by some state-machine based runtime framework or a high level programming language, such as CHILL. On the other hand, KDM Event model can represent abstract states, for example, states which are associated with a particular algorithm, resource or a user interface.</P>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1098720"></A>Organization of the Event Package</H3>
<P CLASS="Body">
<A NAME="pgfId-1099518"></A>The Event package consists of the following 6 class diagrams:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099519"></A>EventModel</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099520"></A>EventInheritances</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099521"></A>EventResources</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099529"></A>EventRelations</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099530"></A>EventActions</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099531"></A>ExtendedEventElements</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId-1098724"></A>The Event package depends on the following packages:</P>
<UL>
<LI CLASS="Bullet1">
<A NAME="pgfId-1098726"></A>Core</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1099514"></A>kdm</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100139"></A>Source</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1098727"></A>Code</LI>
<LI CLASS="Bullet1">
<A NAME="pgfId-1100140"></A>Action</LI>
</UL>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1098788"></A><A NAME="_Toc131848426"></A>EventModel Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1098790"></A>The EventModel class diagram follows a uniform pattern for KDM models to extend the KDM framework with specific meta-model element related to event-driven state transition behavior.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1098740"></A>The class diagram shown in <A HREF="KDM_1.0_17_eventpkg.htm#83480" CLASS="XRef">See - EventModel Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1098741"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_17_eventpkg-1.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption1">
<A NAME="pgfId-1098742"></A><A NAME="83480"></A>- EventModel Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1098822"></A><A NAME="_Toc131848427"></A>EventModel Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1098823"></A>The EventModel is a specific KDM model that represents entities and relations describing events and responses to events in an enterprise application.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098825"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1098826"></A>KDMModel</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098828"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1098838"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1098831"></A>eventElement:AbstractEventElement[0..*] </P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1098833"></A>event elements owned by the given event model</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098840"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098842"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100078"></A>EventModel is a container for instances of event elements. It is the implementer's responsibility to arrange event elements into one or more event models. </P>
<P CLASS="paragraph">
<A NAME="pgfId-1100079"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1098844"></A><A NAME="_Toc131848428"></A>AbstractEventElement Class (abstract)</H4>
<P CLASS="Body">
<A NAME="pgfId-1098845"></A>The AbstractEventElement is an abstract superclass for various event elements.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098847"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1098848"></A>KDMEntity</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098850"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1098856"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1099470"></A>eventRelation:AbstractEventRelationship[0..*]</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1099472"></A>event relations owned by the give element</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1099566"></A>abstraction:ActionElement[0..*]</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1099568"></A>owned &quot;abstracted&quot; action elements</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100554"></A>implementation:AbstractCodeElement[0..*]</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100556"></A>group association to AbstractCodeElement elements from some CodeModel which are represented by the current EventElement</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100427"></A>source:SourceRef[0..*]</P>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100429"></A>traceability links to the &quot;source code&quot; of the artifact</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098858"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1100584"></A>Implementation AbstractCodeElement should be owned by some CodeModel</H6>
</DIV>
<DIV>
<H6 CLASS="List1-">
<A NAME="pgfId-1100585"></A>Implementation AbstractCodeElement should be subclass of ComputationalObject or ActionElement</H6>
</DIV>
<DIV>
<H6 CLASS="List1-">
<A NAME="pgfId-1100586"></A>abstraction ActionElement should be owned by the same EventModel</H6>
</DIV>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098860"></A>Semantics</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100593"></A>Implementation AbstractCodeElement are the one or mode ComputationalObject or ActionElement that are represented by the current EventElement. &quot;Abstraction&quot; actions can be used to represent precise semantics of the EventElement.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1100594"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1098883"></A><A NAME="_Toc131848430"></A>AbstractEventRelationship Class (abstract)</H4>
<P CLASS="Body">
<A NAME="pgfId-1098884"></A>The AbstractEventRelationship is the superclass of associations of the event model. This is an abstract meta-model element for representing various relations involving states and events.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098886"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1098887"></A>KDMRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098898"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1098900"></A>Semantics</H6>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099546"></A>EventInheritances Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099547"></A>The EventInheritances class diagram defines how classes of the Event package inherit core meta-model classes from KDM Core package. The classes and associations that make up the EventInheritances diagram are shown in <A HREF="KDM_1.0_17_eventpkg.htm#96091" CLASS="XRef">See - EventInheritances Class Diagram.</A>. </P>
<P CLASS="paragraph">
<A NAME="pgfId-1099554"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_17_eventpkg-2.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099556"></A><A NAME="96091"></A>- EventInheritances Class Diagram</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099544"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1098905"></A><A NAME="_Toc131848431"></A>EventResources Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1098907"></A>The EventResources class diagram defines specific event elements. The class diagram shown in <A HREF="KDM_1.0_17_eventpkg.htm#14106" CLASS="XRef">See - EventResourcesClass Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1098542"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_17_eventpkg-3.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099035"></A><A NAME="14106"></A>- EventResourcesClass Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099724"></A>EventResource Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1099725"></A>The EventResource is the generic AbstractEventElement that can be instantiated in KDM instances.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099726"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099727"></A>AbstractEventElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100164"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1100148"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100152"></A>eventElement:AbstractEventElement[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100154"></A>Event elements owned by this EventResource</H6>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099728"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099729"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099048"></A>Event Class</H4>
<P CLASS="Body">
<A NAME="pgfId-1099049"></A>The Event is the generic AbstractEventElement that can be instantiated in KDM instances.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099051"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099052"></A>EventResource</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100567"></A>Attributes</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100573"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100570"></A>kind:String</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100572"></A>represents the nature of this Event</H6>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099054"></A>Constraints</H6>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099630"></A>Semantics</H6>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099639"></A>State class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099640"></A>The State class represents a state associated with certain behavior. This can be a concrete state, for example, supported by a state-machine runtime framework. This can also be an abstract state associated with some process, algorithm, component, or resource, discovered during the analysis of the software system. An example of an abstract state is the step of the protocol that involves a messaging resource. An abstract state may not have any direct and tangible manifestation in the artifacts of the software system. On the other hand, a concrete state may be implemented in a tangible way, for example, using a variable or as a class provided by the application framework. States can be nested.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099642"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099643"></A>EventResource</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099648"></A>InitialState class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099649"></A>The InitialState class is a subclass of the State class. It represents a default initial state. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099651"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099652"></A>State</P>
<P CLASS="paragraph">
<A NAME="pgfId-1099653"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099654"></A>Transition class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099655"></A>The Transition class represents a transition that is performed when a certain event is consumed is a certain state. Transition element should be owned by some state element. Transition can be associated with the corresponding Event by using the &quot;ConsumesEvent&quot; resource relation. A transition element can also own some Event elements. Transition does not have an &quot;implementation&quot; group. Instead, it is considered as some sort of a trigger. The association between the transition and corresponding behavior is achieved through the &quot;abstraction&quot; action container of the transition. Usually, this is a Calls action relation. For more complex situations, the &quot;CodeGroup&quot; capability of the &quot;abstraction&quot; action element can be used.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099657"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099658"></A>EventResource</P>
<P CLASS="paragraph">
<A NAME="pgfId-1099660"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099661"></A>OnEntry class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099662"></A>The OnEntry class represents specific transitions that are configured to be performed by the runtime framework when a certain state has been entered. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099664"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099665"></A>Transition</P>
<P CLASS="paragraph">
<A NAME="pgfId-1099666"></A>&nbsp;</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099667"></A>OnExit class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099669"></A>The OnExit class represents specific transitions that are configured to be performed by the runtime framework when a certain state has been exited.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099671"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099672"></A>Transition</P>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100465"></A>EventAction class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1100466"></A>EventAction class follow the pattern of a &quot;resource action&quot; class, specific to the event package. The nature of the action represented by a particular element is designated by its &quot;kind&quot; attribute. Descriptions of the common platform action kind are provided in Appendix 2. Resource Layer actions.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100467"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100468"></A>AbstractEventElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100469"></A>Attributes</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100475"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100472"></A>kind:String</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100474"></A>represents the nature of the action performed by this element</H6>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100479"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100485"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100482"></A>eventElement:Event[0..*]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100484"></A>the set of Event elements that owned by the current EventAction element</H6>
</TD>
</TR>
</TABLE>
<P CLASS="paragraph">
<A NAME="pgfId-1099631"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099635"></A><A NAME="_Toc119735901"></A><A NAME="_Toc119728847"></A><A NAME="_Toc131848435"></A>EventRelations Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099087"></A>EventRelations diagram defines meta-model relationship elements which represent several structural properties of event-driven systems. The class diagram shown in <A HREF="KDM_1.0_17_eventpkg.htm#83859" CLASS="XRef">See - EventRelations Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1099037"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_17_eventpkg-4.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099173"></A><A NAME="83859"></A>- EventRelations Class Diagram</H6>
<P CLASS="Body">
<A NAME="pgfId-1099936"></A>&nbsp;</P>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099937"></A>NextState class</H4>
<P CLASS="Body">
<A NAME="pgfId-1099938"></A>The NextState class represents the knowledge that upon completion of the behavior associated with a certain transition element, the corresponding behavior will enter the given state. For example, in statically configured state-machine based frameworks this information can be derived from the initialization of framework specific data structures. When there exists several NextState relations originating from a given transition, this means that an unspecified choice is made by the behavior associated with the transition. More precise &quot;abstraction&quot; can be provided by using the &quot;abstraction&quot; action containers associated with various elements involved.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099957"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099958"></A>AbstractEventRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099939"></A>Associations:</H6>
<P CLASS="Body">
<A NAME="pgfId-1099942"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100216"></A>to:Transition[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100218"></A>the transition</H6>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100235"></A>from:State[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100237"></A>the state</H6>
</TD>
</TR>
</TABLE>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099943"></A>ConsumesEvent class</H4>
<P CLASS="Body">
<A NAME="pgfId-1099944"></A>The ConsumesEvent class represents the knowledge that a certain transition element, is associated with a certain event. For example, in statically configured state-machine based frameworks this information can be derived from the initialization of framework specific data structures.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099969"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099970"></A>AbstractEventRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099946"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099782"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100267"></A>from:Transition[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100269"></A>the transition</H6>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100271"></A>to:Event[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100286"></A>the event </P>
</TD>
</TR>
</TABLE>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099788"></A>EventActions Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1099789"></A>The EventActions class diagram defines basic KDM relations between The class diagram shown in <A HREF="KDM_1.0_17_eventpkg.htm#83859" CLASS="XRef">See - EventRelations Class Diagram.</A> captures these classes and their relations.</P>
<P CLASS="Body">
<A NAME="pgfId-1099796"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_17_eventpkg-5.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099798"></A>- EventActions Class Diagram</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099783"></A>&nbsp;</P>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099736"></A>ReadsState class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099737"></A>ReadsState class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to the state-based runtime framework that provides a concrete implementation of states, where access is made to a particular state (for example, accessing the current state, setting the next state). ReadsState relationship is similar to Addresses relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the EventAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099739"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099740"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099742"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100311"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100315"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100317"></A>&quot;abstracted&quot; action owned by some resource</H6>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100319"></A>to:EventResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100321"></A>the event resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099745"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1099746"></A>This relationship should not be used in Code models</H6>
</DIV>
<DIV>
<H6 CLASS="List1-">
<A NAME="pgfId-1099747"></A>The to endpoint of the relationship should be State of one of its subclasses</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099748"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099749"></A>ProducesEvent class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099750"></A>ProducesEvent class follows the pattern of a &quot;resource action relationship&quot;. It represents various types of accesses to the state-based runtime framework where the application produces the event. ProducesEvent relationship is similar to Writes relationship from Action Package. The nature of the operation on the resource is represented by the &quot;kind&quot; attribute of the EventAction that owns this relationship through the &quot;abstracted&quot; action container property.</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099752"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099753"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099755"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100363"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100367"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100369"></A>&quot;abstracted&quot; action owned by some resource</H6>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100371"></A>to:EventResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100373"></A>the event resource being produced</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099758"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1099759"></A>This relationship should not be used in Code models</H6>
</DIV>
<DIV>
<H6 CLASS="List1-">
<A NAME="pgfId-1099760"></A>The &quot;to&quot; endpoint of the relationship should be Event</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099761"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099762"></A>HasState class</H4>
<P CLASS="paragraph">
<A NAME="pgfId-1099763"></A>HasState class follows the pattern of a &quot;resource action relationship&quot;. HasState is a structural relationship. It does not represent resource manipulations. HasState relationship uses the &quot;abstracted&quot; action container mechanism to provide certain capabilities to other Resource Layer packages. &quot;HasState&quot; relationship makes it possible to associate an element of an event model with any resource. </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099765"></A>Superclass</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099766"></A>Action::AbstractActionRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099767"></A>Associations:</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100381"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100385"></A>from:ActionElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100387"></A>&quot;abstracted&quot; action owned by some resource</H6>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100389"></A>to:EventResource[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="Body">
<A NAME="pgfId-1100391"></A>the event resource being accessed</P>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099770"></A>Constraints:</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1099771"></A>This relationship should not be used in Code models</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1099772"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
</DIV>
<DIV>
<H3 CLASS="Heading1">
<A NAME="pgfId-1099983"></A>ExtenededEventElements Class Diagram</H3>
<P CLASS="Body">
<A NAME="pgfId-1100094"></A>The ExtendedEventElements class diagram defines two &quot;wildcard&quot; generic elements for the event model as determined by the KDM model pattern: a generic event entity and a generic event relationship.</P>
<P CLASS="Body">
<A NAME="pgfId-1099988"></A>The classes and associations of the ExtendedEventElements diagram are shown in <A HREF="KDM_1.0_17_eventpkg.htm#37351" CLASS="XRef">See - ExtendedEventElements Class Diagram.</A>. </P>
<P CLASS="Body">
<A NAME="pgfId-1099992"></A>&nbsp;</P>
<DIV>
<IMG SRC="KDM_1.0_17_eventpkg-6.gif">
</DIV>
<DIV>
<H6 CLASS="FigureCaption-">
<A NAME="pgfId-1099993"></A><A NAME="37351"></A>- ExtendedEventElements Class Diagram</H6>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1099994"></A>EventElement Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1100112"></A>The EventElement class is a generic meta-model element that can be used to define new &quot;virtual&quot; meta-model elements through the KDM light-weight extension mechanism</P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1099996"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1099997"></A>AbstractEventElement</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100120"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1100121"></A>EventElement should have at least one stereotype</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100122"></A>Semantics</P>
<P CLASS="paragraph">
<A NAME="pgfId-1100123"></A>An event entity with under specified semantics. It is a concrete class that can be used as the base element of a new &quot;virtual&quot; meta-model entity types of the event model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.</P>
</DIV>
</DIV>
</DIV>
<DIV>
<H4 CLASS="Heading2">
<A NAME="pgfId-1100000"></A>EventRelationship Class (generic)</H4>
<P CLASS="Body">
<A NAME="pgfId-1100127"></A>The EventRelationship class is a generic meta-model element that can be used to define new &quot;virtual&quot; meta-model elements through the KDM light-weight extension mechanism </P>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100002"></A>Superclass</H6>
<P CLASS="Body">
<A NAME="pgfId-1100003"></A>AbstractEventRelationship</P>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100004"></A>Associations</H6>
<P CLASS="Body">
<A NAME="pgfId-1100014"></A>&nbsp;</P>
<TABLE BORDER="1">
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100007"></A>from:AbstractEventElement[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100009"></A>The event element origin endpoint of the relationship</H6>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText1">
<A NAME="pgfId-1100011"></A>to:KDMEntity[1]</H6>
</TD>
<TD ROWSPAN="1" COLSPAN="1">
<H6 CLASS="TableText">
<A NAME="pgfId-1100013"></A>the target of the relationship</H6>
</TD>
</TR>
</TABLE>
</DIV>
<DIV>
<H6 CLASS="Heading4">
<A NAME="pgfId-1100133"></A>Constraints</H6>
<DIV>
<H6 CLASS="List1">
<A NAME="pgfId-1100134"></A>EventRelationship should have at least one stereotype</H6>
<P CLASS="paragraph">
<A NAME="pgfId-1100135"></A>Semantics</P>
<P CLASS="paragraph">
<A NAME="pgfId-1100136"></A>An event relationship with under specified semantics. It is a concrete class that can be used as the base element of a new &quot;virtual&quot; meta-model relationship types of the event model. This is one of the KDM extension points which can integrate additional language-specific, application-specific or implementer-specific pieces of knowledge into the standard KDM representation.</P>
<P CLASS="paragraph">
<A NAME="pgfId-1099981"></A>&nbsp;</P>
<P CLASS="Body">
<A NAME="pgfId-1098137"></A>&nbsp;</P>
</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
